package pos.domain;

import java.util.List;

import pos.data.JDBCCalleDAO;
import pos.data.JDBCRutaDAO;

public class RutaProcesator implements IRutaProcesator{
	
	private static RutaProcesator instance;
	private JDBCCalleDAO calleDao;
	private JDBCRutaDAO rutaDao;
	
	public RutaProcesator() {
		super();
		calleDao = new JDBCCalleDAO();
		rutaDao = new JDBCRutaDAO();
	}

	public static synchronized RutaProcesator getInstance() {
        if (instance == null)
        	instance = new RutaProcesator();
        return instance;
    }

	@Override
	public List<Ruta> getRutas(Usuario usuario) {
		List<Ruta> lista = rutaDao.getRutaByUser(usuario);
		return lista;	
	}

	@Override
	public Ruta generarRuta(String inicio, String fin, Usuario usuario) {
		Calle calleInicio = calleDao.selectByNombre(inicio);
		Calle calleFin = calleDao.selectByNombre(inicio);
		RutaAleatoria rutaAleatorio = new RutaAleatoria(calleInicio, calleFin);
		Ruta ruta = new Ruta();
		ruta.setUsuario(usuario);
		ruta.setNombre("");
		ruta.setDescripcion("");
		ruta.setCalles(rutaAleatorio.getListaRuta());
		return ruta;
	}

	@Override
	public void guardarRuta(Ruta ruta) {
		rutaDao.insert(ruta);
	}

	@Override
	public Ruta getRuta(int idRuta) {
		return rutaDao.getRutaById(idRuta);
	}
}
